# 29.小D的 `abc` 变换问题
# 问题描述
# 小D拿到了一个仅由 "abc" 三种字母组成的字符串。她每次操作会对所有字符同时进行以下变换：

# 将 'a' 变成 'bc'
# 将 'b' 变成 'ca'
# 将 'c' 变成 'ab'
# 小D将重复该操作 k 次。你的任务是输出经过 k 次变换后，得到的最终字符串。

# 例如：对于初始字符串 "abc"，执行 2 次操作后，字符串将变为 "caababbcbcca"。

# 测试样例
# 样例1：

# 输入：s = "abc", k = 2
# 输出：'caababbcbcca'

# 样例2：

# 输入：s = "abca", k = 3
# 输出：'abbcbccabccacaabcaababbcabbcbcca'

# 样例3：

# 输入：s = "cba", k = 1
# 输出：'abcabc'

def solution(s: str, k: int) -> str:
    # PLEASE DO NOT MODIFY THE FUNCTION SIGNATURE
    # write code here
    for  i in range(k):
        s_new=''
        for c in s:
            if c=='a':
                s_new+='bc'
            elif c=='b':
                s_new+='ca'
            else:
                s_new+='ab'
        s=s_new
    return s

if __name__ == '__main__':
    print(solution("abc", 2) == 'caababbcbcca')
    print(solution("abca", 3) == 'abbcbccabccacaabcaababbcabbcbcca')
    print(solution("cba", 1) == 'abcabc')